Skip to content

Warn on incomplete concrete classes that inherit from abstract classes#7955

Merged
DanielNoord merged 2 commits into
pylint-dev:mainfrom
sshane:W0223-widening
May 18, 2026
Merged

Warn on incomplete concrete classes that inherit from abstract classes#7955
DanielNoord merged 2 commits into
pylint-dev:mainfrom
sshane:W0223-widening

Conversation

@sshane
Copy link
Copy Markdown
Contributor

@sshane sshane commented Dec 17, 2022

Fixes: #7950

TODO:

  • Update test refs
  • Make it detect the root abc module correctly

@Pierre-Sassoulas Pierre-Sassoulas added the False Negative 🦋 No message is emitted but something is wrong with the code label Dec 17, 2022
@Pierre-Sassoulas Pierre-Sassoulas modified the milestones: 2.16.0, 2.17.0 Dec 17, 2022
@sshane sshane changed the title Warn on concrete classes that inherit from abstract classes Warn on incomplete concrete classes that inherit from abstract classes Dec 17, 2022
@github-actions

This comment has been minimized.

Comment thread pylint/checkers/utils.py Outdated
@github-actions

This comment has been minimized.

@github-actions

This comment has been minimized.

@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jan 1, 2023

Updated the test refs, but I'm not sure they're right. I'm getting lots of diffs for a lot of tests. Running pylint built from main on Windows 11 (astroid-2.12.13 pylint-2.16.0.dev0).

It appears I'm getting the correct output with Ubuntu 20.04, but python test_functional.py --update-functional-output is not writing any changes even though this test fails still. 🤔

@sshane sshane marked this pull request as ready for review January 1, 2023 01:20
@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jan 1, 2023

Should be good now, let me know if there's any issues @DanielNoord! I had to add a print into the tester to get the results :/

@github-actions

This comment has been minimized.

Comment thread tests/functional/a/abstract/abstract_method.py Outdated
Comment thread pylint/checkers/utils.py
Comment thread tests/functional/a/abstract/abstract_method.py Outdated
@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jan 11, 2023

@DanielNoord is there anything else needing to be done?

@DanielNoord
Copy link
Copy Markdown
Collaborator

@DanielNoord is there anything else needing to be done?

The CI fails so we would first need to fix that before this can be merged.

@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jan 11, 2023

For whatever reason, both Python 3.8 and 3.10 do not work to update the abstract method file. I'm running python test_functional.py --update-functional-tests, but it just fails and doesn't update the file (it updates other files that we don't want).

-e git+https://github.com/sshane/pylint@c8564bb99a393621341851acaa3ed042b3c53c3d#egg=pylint
astroid==2.12.14
Python 3.10.0
Ubuntu 20.04
self = <pylint.testutils.functional.lint_module_output_update.LintModuleOutputUpdate object at 0x7fa1e3c6d690>

    def runTest(self) -> None:
>       self._runTest()
E       AssertionError: Wrong results for file "abstract_method":
E       
E       Unexpected in testdata:
E         47: abstract-method

../pylint/testutils/lint_module_test.py:145: AssertionError
=========================================================================================================================================== short test summary info ===========================================================================================================================================
FAILED test_functional.py::test_functional[abstract_method] - AssertionError: Wrong results for file "abstract_method":
============================================================================================================================ 1 failed, 779 passed, 25 skipped in 62.76s (0:01:02) =============================================================================================================================

@DanielNoord
Copy link
Copy Markdown
Collaborator

Could it be that the test simply fails? If haven't checked that myself locally

@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jan 21, 2023

Do you have any docs for what the comments do? For example, I'm not sure if # [abstract-method] means we're asserting an abstract method error from pylint, or we're catching an error to not fail the tests.

Are the functional tests a sort of blend of replay with the file outputs and unit tests?

@DanielNoord
Copy link
Copy Markdown
Collaborator

Do you have any docs for what the comments do? For example, I'm not sure if # [abstract-method] means we're asserting an abstract method error from pylint, or we're catching an error to not fail the tests.

Are the functional tests a sort of blend of replay with the file outputs and unit tests?

https://pylint.readthedocs.io/en/latest/development_guide/contributor_guide/tests/writing_test.html#functional-tests

This (attempts to) describe the functional test framework. Basically it tries to lint the file and sees where we expect messages to be raised and compares that against the actual output of the linting.

@Pierre-Sassoulas Pierre-Sassoulas modified the milestones: 2.17.0, 3.0.0 Mar 7, 2023
@Pierre-Sassoulas Pierre-Sassoulas removed this from the 3.0.0 milestone Sep 24, 2023
@DanielNoord
Copy link
Copy Markdown
Collaborator

@sshane This is quite close to being done. Do you have intention of working on it? Or shall we close it?

@codecov
Copy link
Copy Markdown

codecov Bot commented Jun 3, 2024

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 96.22%. Comparing base (3d7ac12) to head (9021d25).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##             main    #7955   +/-   ##
=======================================
  Coverage   96.22%   96.22%           
=======================================
  Files         178      178           
  Lines       19699    19700    +1     
=======================================
+ Hits        18956    18957    +1     
  Misses        743      743           
Files with missing lines Coverage Δ
pylint/checkers/utils.py 95.94% <100.00%> (+<0.01%) ⬆️
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@github-actions

This comment has been minimized.

@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jun 3, 2024

@DanielNoord I'm having the same problem I did when I last worked on it, I verified my # [abstract-method] markers are accurate according to running pylint on the file, but still get some test failures:

    def runTest(self) -> None:
>       self._runTest()
E       AssertionError: Wrong message(s) raised for "abstract_method.py":
E       
E       Unexpected in testdata:
E         47: abstract-method

Running python tests/test_functional.py --update-functional-output -k "test_functional[abstract_method]" does not update abstract_method.txt either

@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jun 3, 2024

Narrowed it down to #9688. I don't have any more time to spend on this for the time being, feel free to get it across the line if it's simple for you, else you can close.

@github-actions

This comment has been minimized.

@jacobtylerwalls jacobtylerwalls added this to the 3.3.0 milestone Jun 4, 2024
@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jun 4, 2024

I was expecting each line's warnings to be compared to the annotations, not one by one! A more clear error message would have been nice 🙂

@github-actions

This comment has been minimized.

@sshane
Copy link
Copy Markdown
Contributor Author

sshane commented Jun 4, 2024

@DanielNoord I added the count which would have surfaced this for me much quicker, let me know if it's something you want and I can split it out

    def runTest(self) -> None:
>       self._runTest()
E       AssertionError: Wrong message(s) raised for "abstract_method.py":
E       
E       Unexpected in testdata:
E         47: abstract-method (2)

@github-actions

This comment has been minimized.

Copy link
Copy Markdown
Collaborator

@DanielNoord DanielNoord left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Only needs a news entry using towncrier. I'm fine with merging without full coverage.

@Pierre-Sassoulas Pierre-Sassoulas modified the milestones: 3.3.0, 3.4.0 Sep 20, 2024
@jacobtylerwalls jacobtylerwalls modified the milestones: 3.4.0, 4.0.0 Sep 25, 2024
@DanielNoord DanielNoord added the Needs take over 🛎️ Orignal implementer went away but the code could be salvaged. label Mar 30, 2025
@Pierre-Sassoulas Pierre-Sassoulas modified the milestones: 4.0.0, 4.1.0 Oct 11, 2025
sshane and others added 2 commits May 18, 2026 15:49
``class_is_abstract`` previously treated a class as abstract whenever
any of its ancestors inherited from ``abc.ABC``. That meant a concrete
class which only inherited from an abstract intermediate (without
re-declaring ``abc.ABC`` or ``ABCMeta``) was silently exempted from the
``abstract-method`` check, even when it left abstract methods
unimplemented.

The check now only treats a class as abstract when it declares so
itself: direct ``abc.ABC`` inheritance, ``metaclass=ABCMeta``, an
``@abstractmethod`` defined on the class, or a Protocol class. Concrete
subclasses that skip the explicit opt-in are now flagged for the
abstract methods they inherit and do not override.

Closes pylint-dev#7950
@github-actions
Copy link
Copy Markdown
Contributor

🤖 Effect of this PR on checked open source code: 🤖

Effect on astropy:

The following messages are now emitted:

Details
  1. abstract-method:
    Method 'call' is abstract in class '_BoundingDomain' but is not overridden in child class 'ModelBoundingBox'
    https://github.com/astropy/astropy/blob/1fb40bc1f22f176254ef583065aa155f53f3b414/astropy/modeling/bounding_box.py#L577
  2. abstract-method:
    Method 'call' is abstract in class '_BoundingDomain' but is not overridden in child class 'CompoundBoundingBox'
    https://github.com/astropy/astropy/blob/1fb40bc1f22f176254ef583065aa155f53f3b414/astropy/modeling/bounding_box.py#L1313
  3. abstract-method:
    Method 'call' is abstract in class '_BoundingDomain' but is not overridden in child class 'BoundingDomain'
    https://github.com/astropy/astropy/blob/1fb40bc1f22f176254ef583065aa155f53f3b414/astropy/modeling/tests/test_bounding_box.py#L223

Effect on pytest:

The following messages are now emitted:

Details
  1. abstract-method:
    Method 'snap' is abstract in class 'CaptureBase' but is not overridden in child class 'SysCaptureBase'
    https://github.com/pytest-dev/pytest/blob/77dceaa1fd1598293a7a39a837f859620a07002f/src/_pytest/capture.py#L362
  2. abstract-method:
    Method 'writeorg' is abstract in class 'CaptureBase' but is not overridden in child class 'SysCaptureBase'
    https://github.com/pytest-dev/pytest/blob/77dceaa1fd1598293a7a39a837f859620a07002f/src/_pytest/capture.py#L362
  3. abstract-method:
    Method 'snap' is abstract in class 'CaptureBase' but is not overridden in child class 'FDCaptureBase'
    https://github.com/pytest-dev/pytest/blob/77dceaa1fd1598293a7a39a837f859620a07002f/src/_pytest/capture.py#L464
  4. abstract-method:
    Method 'writeorg' is abstract in class 'CaptureBase' but is not overridden in child class 'FDCaptureBase'
    https://github.com/pytest-dev/pytest/blob/77dceaa1fd1598293a7a39a837f859620a07002f/src/_pytest/capture.py#L464

Effect on sentry:

The following messages are now emitted:

Details
  1. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'SlackRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/slack.py#L53
  2. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'BitbucketRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/bitbucket.py#L18
  3. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'GoogleRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/google.py#L13
  4. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'DiscordRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/discord.py#L34
  5. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'VstsRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/vsts.py#L19
  6. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'BitbucketServerRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/bitbucket_server.py#L15
  7. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'VercelRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/vercel.py#L13
  8. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'JiraRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/jira.py#L33
  9. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'MsTeamsRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/msteams.py#L24
  10. abstract-method:
    Method 'mailbox_bucket_id' is abstract in class 'BaseRequestParser' but is not overridden in child class 'PluginRequestParser'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/middleware/integrations/parsers/plugin.py#L19
  11. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'EventAttributeCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/event_attribute.py#L81
  12. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'EventFrequencyCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/event_frequency.py#L439
  13. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'EventFrequencyCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/event_frequency.py#L439
  14. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'EventUniqueUserFrequencyCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/event_frequency.py#L518
  15. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'EventUniqueUserFrequencyCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/event_frequency.py#L518
  16. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'EventUniqueUserFrequencyConditionWithConditions'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/event_frequency.py#L593
  17. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'EventUniqueUserFrequencyConditionWithConditions'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/event_frequency.py#L593
  18. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'FirstSeenEventCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/first_seen_event.py#L11
  19. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'ExistingHighPriorityIssueCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/existing_high_priority_issue.py#L13
  20. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'TaggedEventCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/tagged_event.py#L37
  21. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'LevelCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/level.py#L27
  22. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'NewHighPriorityIssueCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/new_high_priority_issue.py#L12
  23. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'RegressionEventCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/regression_event.py#L12
  24. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'ReappearedEventCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/reappeared_event.py#L12
  25. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'EveryEventCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/every_event.py#L6
  26. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'EveryEventCondition'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/conditions/every_event.py#L6
  27. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'NotifyEventServiceAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/actions/notify_event_service.py#L134
  28. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'NotifyEventAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/actions/notify_event.py#L12
  29. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'NotifyEventSentryAppAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/actions/sentry_apps/notify_event.py#L36
  30. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'EventAttributeFilter'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/filters/event_attribute.py#L4
  31. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'TaggedEventFilter'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/filters/tagged_event.py#L4
  32. abstract-method:
    Method 'get_activity' is abstract in class 'EventCondition' but is not overridden in child class 'LevelFilter'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/filters/level.py#L4
  33. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'LatestReleaseFilter'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/filters/latest_release.py#L52
  34. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'LatestAdoptedReleaseFilter'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/rules/filters/latest_adopted_release_filter.py#L77
  35. abstract-method:
    Method 'create_audit_entry' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorDetailsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_details.py#L29
  36. abstract-method:
    Method 'paginate' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorDetailsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_details.py#L29
  37. abstract-method:
    Method 'respond' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorDetailsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_details.py#L29
  38. abstract-method:
    Method 'create_audit_entry' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorEnvironmentDetailsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_environment_details.py#L14
  39. abstract-method:
    Method 'paginate' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorEnvironmentDetailsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_environment_details.py#L14
  40. abstract-method:
    Method 'respond' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorEnvironmentDetailsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_environment_details.py#L14
  41. abstract-method:
    Method 'create_audit_entry' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorCheckInMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_checkin_index.py#L16
  42. abstract-method:
    Method 'paginate' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorCheckInMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_checkin_index.py#L16
  43. abstract-method:
    Method 'respond' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorCheckInMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_checkin_index.py#L16
  44. abstract-method:
    Method 'create_audit_entry' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorStatsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_stats.py#L27
  45. abstract-method:
    Method 'paginate' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorStatsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_stats.py#L27
  46. abstract-method:
    Method 'respond' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'MonitorStatsMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/monitors/endpoints/base_monitor_stats.py#L27
  47. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'DigestNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/digest.py#L51
  48. abstract-method:
    Method 'build_attachment_title' is abstract in class 'BaseNotification' but is not overridden in child class 'MissingMembersNudgeNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/missing_members_nudge.py#L21
  49. abstract-method:
    Method 'build_notification_footer' is abstract in class 'BaseNotification' but is not overridden in child class 'MissingMembersNudgeNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/missing_members_nudge.py#L21
  50. abstract-method:
    Method 'get_notification_title' is abstract in class 'BaseNotification' but is not overridden in child class 'MissingMembersNudgeNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/missing_members_nudge.py#L21
  51. abstract-method:
    Method 'get_title_link' is abstract in class 'BaseNotification' but is not overridden in child class 'MissingMembersNudgeNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/missing_members_nudge.py#L21
  52. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'IntegrationNudgeNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/integration_nudge.py#L46
  53. abstract-method:
    Method 'build_attachment_title' is abstract in class 'BaseNotification' but is not overridden in child class 'AlertRuleNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/rules.py#L78
  54. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'AlertRuleNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/rules.py#L78
  55. abstract-method:
    Method 'get_title_link' is abstract in class 'BaseNotification' but is not overridden in child class 'AlertRuleNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/rules.py#L78
  56. abstract-method:
    Method 'build_attachment_title' is abstract in class 'BaseNotification' but is not overridden in child class 'AutoSyncNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/codeowners_auto_sync.py#L15
  57. abstract-method:
    Method 'get_notification_title' is abstract in class 'BaseNotification' but is not overridden in child class 'AutoSyncNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/codeowners_auto_sync.py#L15
  58. abstract-method:
    Method 'get_title_link' is abstract in class 'BaseNotification' but is not overridden in child class 'AutoSyncNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/codeowners_auto_sync.py#L15
  59. abstract-method:
    Method 'build_attachment_title' is abstract in class 'BaseNotification' but is not overridden in child class 'UserReportNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/user_report.py#L25
  60. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'UserReportNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/user_report.py#L25
  61. abstract-method:
    Method 'get_title_link' is abstract in class 'BaseNotification' but is not overridden in child class 'UserReportNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/user_report.py#L25
  62. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'NoteActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/note.py#L16
  63. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'ResolvedInReleaseActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/resolved_in_release.py#L16
  64. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'AssignedActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/assigned.py#L57
  65. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'UnresolvedActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/unresolved.py#L7
  66. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'UnassignedActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/unassigned.py#L11
  67. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'ArchiveActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/archive.py#L7
  68. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'ReleaseActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/release.py#L32
  69. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'ResolvedInPullRequestActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/resolved_in_pull_request.py#L11
  70. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'RegressionActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/regression.py#L16
  71. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'EscalatingActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/escalating.py#L12
  72. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'ResolvedActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/notifications/notifications/activity/resolved.py#L9
  73. abstract-method:
    Method 'has_project_access' is abstract in class 'Access' but is not overridden in child class 'DbAccess'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/auth/access.py#L197
  74. abstract-method:
    Method 'has_team_access' is abstract in class 'Access' but is not overridden in child class 'DbAccess'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/auth/access.py#L197
  75. abstract-method:
    Method 'build_rpc_request' is abstract in class 'BaseEntitySubscription' but is not overridden in child class 'EventsEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L258
  76. abstract-method:
    Method 'build_rpc_request' is abstract in class 'BaseEntitySubscription' but is not overridden in child class 'PerformanceTransactionsEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L263
  77. abstract-method:
    Method 'build_query_builder' is abstract in class 'BaseEntitySubscription' but is not overridden in child class 'PerformanceSpansEAPRpcEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L268
  78. abstract-method:
    Method 'build_rpc_request' is abstract in class 'BaseEntitySubscription' but is not overridden in child class 'PerformanceMetricsEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L464
  79. abstract-method:
    Method 'build_rpc_request' is abstract in class 'BaseEntitySubscription' but is not overridden in child class 'BaseCrashRateMetricsEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L492
  80. abstract-method:
    Method 'get_snql_aggregations' is abstract in class 'BaseMetricsEntitySubscription' but is not overridden in child class 'BaseCrashRateMetricsEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L492
  81. abstract-method:
    Method 'build_rpc_request' is abstract in class 'BaseEntitySubscription' but is not overridden in child class 'MetricsCountersEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L549
  82. abstract-method:
    Method 'build_rpc_request' is abstract in class 'BaseEntitySubscription' but is not overridden in child class 'MetricsSetsEntitySubscription'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/snuba/entity_subscription.py#L574
  83. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'ExampleIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/example/integration.py#L74
  84. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'ExampleIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/example/integration.py#L74
  85. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'AliasedIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/example/integration.py#L251
  86. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'AliasedIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/example/integration.py#L251
  87. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'OpsgenieNotifyTeamAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/opsgenie/actions/notification.py#L23
  88. abstract-method:
    Method 'get_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitlabIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/issues.py#L27
  89. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitlabIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/issues.py#L27
  90. abstract-method:
    Method 'get_repositories' is abstract in class 'BaseRepositoryIntegration' but is not overridden in child class 'GitlabIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/issues.py#L27
  91. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitlabIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/issues.py#L27
  92. abstract-method:
    Method 'search_issues' is abstract in class 'IssueBasicIntegration' but is not overridden in child class 'GitlabIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/issues.py#L27
  93. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitlabIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/integration.py#L119
  94. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitlabIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/integration.py#L119
  95. abstract-method:
    Method 'sync_status_outbound' is abstract in class 'GitlabIssueSyncSpec' but is not overridden in child class 'GitlabIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/gitlab/integration.py#L119
  96. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'AwsLambdaIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/aws_lambda/integration.py#L82
  97. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'AwsLambdaIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/aws_lambda/integration.py#L82
  98. abstract-method:
    Method 'handle_search_repositories' is abstract in class 'SourceCodeSearchEndpoint' but is not overridden in child class 'VstsSearchEndpoint'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/vsts/search.py#L16
  99. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'VstsIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/vsts/integration.py#L135
  100. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'VstsIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/vsts/integration.py#L135
  101. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'AzureDevopsCreateTicketAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/vsts/actions/create_ticket.py#L10
  102. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'VercelIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/vercel/integration.py#L212
  103. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'VercelIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/vercel/integration.py#L212
  104. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'DiscordIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/discord/integration.py#L83
  105. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'DiscordIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/discord/integration.py#L83
  106. abstract-method:
    Method 'get_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'BitbucketIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket/issues.py#L44
  107. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'BitbucketIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket/issues.py#L44
  108. abstract-method:
    Method 'get_repositories' is abstract in class 'BaseRepositoryIntegration' but is not overridden in child class 'BitbucketIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket/issues.py#L44
  109. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'BitbucketIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket/issues.py#L44
  110. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'BitbucketIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket/integration.py#L106
  111. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'BitbucketIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket/integration.py#L106
  112. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'JiraIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/jira/integration.py#L151
  113. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'JiraIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/jira/integration.py#L151
  114. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'JiraCreateTicketAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/jira/actions/create_ticket.py#L12
  115. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'JiraServerIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/jira_server/integration.py#L328
  116. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'JiraServerIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/jira_server/integration.py#L328
  117. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'JiraServerCreateTicketAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/jira_server/actions/create_ticket.py#L12
  118. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'PagerDutyNotifyServiceAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/pagerduty/actions/notification.py#L35
  119. abstract-method:
    Method 'get_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issues.py#L37
  120. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issues.py#L37
  121. abstract-method:
    Method 'get_repositories' is abstract in class 'BaseRepositoryIntegration' but is not overridden in child class 'GitHubIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issues.py#L37
  122. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issues.py#L37
  123. abstract-method:
    Method 'search_issues' is abstract in class 'IssueBasicIntegration' but is not overridden in child class 'GitHubIssuesSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issues.py#L37
  124. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/integration.py#L231
  125. abstract-method:
    Method 'create_issue' is abstract in class 'IssueBasicIntegration' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  126. abstract-method:
    Method 'get_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  127. abstract-method:
    Method 'get_issue' is abstract in class 'IssueBasicIntegration' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  128. abstract-method:
    Method 'get_issue_url' is abstract in class 'IssueBasicIntegration' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  129. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  130. abstract-method:
    Method 'get_persisted_default_config_fields' is abstract in class 'IssueBasicIntegration' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  131. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  132. abstract-method:
    Method 'search_issues' is abstract in class 'IssueBasicIntegration' but is not overridden in child class 'GitHubIssueSyncSpec'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/issue_sync.py#L22
  133. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'GitHubCreateTicketAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github/actions/create_ticket.py#L8
  134. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'CursorAgentIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/cursor/integration.py#L147
  135. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'CursorAgentIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/cursor/integration.py#L147
  136. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'BitbucketServerIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket_server/integration.py#L256
  137. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'BitbucketServerIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/bitbucket_server/integration.py#L256
  138. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'SlackIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/slack/integration.py#L81
  139. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'SlackIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/slack/integration.py#L81
  140. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'SlackNotifyServiceAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/slack/actions/notification.py#L52
  141. abstract-method:
    Method 'determine_recipients' is abstract in class 'BaseNotification' but is not overridden in child class 'ExternalIssueCreatedActivityNotification'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/slack/threads/activity_notifications.py#L184
  142. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'MsTeamsIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/msteams/integration.py#L83
  143. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'MsTeamsIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/msteams/integration.py#L83
  144. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'MsTeamsNotifyServiceAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/msteams/actions/notification.py#L20
  145. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubEnterpriseIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github_enterprise/integration.py#L175
  146. abstract-method:
    Method 'get_pr_comment_workflow' is abstract in class 'CommitContextIntegration' but is not overridden in child class 'GitHubEnterpriseIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github_enterprise/integration.py#L175
  147. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'GitHubEnterpriseIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github_enterprise/integration.py#L175
  148. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'GitHubEnterpriseCreateTicketAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/github_enterprise/actions/create_ticket.py#L8
  149. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'PerforceIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/perforce/integration.py#L167
  150. abstract-method:
    Method 'get_pr_comment_workflow' is abstract in class 'CommitContextIntegration' but is not overridden in child class 'PerforceIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/perforce/integration.py#L167
  151. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'PerforceIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/perforce/integration.py#L167
  152. abstract-method:
    Method 'get_keyring_client' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'ClaudeCodeAgentIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/claude_code/integration.py#L290
  153. abstract-method:
    Method 'is_rate_limited_error' is abstract in class 'IntegrationInstallation' but is not overridden in child class 'ClaudeCodeAgentIntegration'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/integrations/claude_code/integration.py#L290
  154. abstract-method:
    Method 'passes_activity' is abstract in class 'RuleBase' but is not overridden in child class 'NotifyEmailAction'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/mail/actions.py#L22
  155. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GitlabIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/gitlab/provider.py#L66
  156. abstract-method:
    Method 'get_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GitlabIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/gitlab/provider.py#L66
  157. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'VSTSIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/vsts/provider.py#L49
  158. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'VSTSNewIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/vsts/provider.py#L151
  159. abstract-method:
    Method 'build_identity' is abstract in class 'Provider' but is not overridden in child class 'VercelIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/vercel/provider.py#L7
  160. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'VercelIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/vercel/provider.py#L7
  161. abstract-method:
    Method 'get_refresh_token_params' is abstract in class 'OAuth2Provider' but is not overridden in child class 'VercelIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/vercel/provider.py#L7
  162. abstract-method:
    Method 'build_config' is abstract in class 'Provider' but is not overridden in child class 'DiscordIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/discord/provider.py#L5
  163. abstract-method:
    Method 'build_identity' is abstract in class 'Provider' but is not overridden in child class 'DiscordIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/discord/provider.py#L5
  164. abstract-method:
    Method 'get_auth_pipeline' is abstract in class 'Provider' but is not overridden in child class 'DiscordIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/discord/provider.py#L5
  165. abstract-method:
    Method 'refresh_identity' is abstract in class 'Provider' but is not overridden in child class 'DiscordIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/discord/provider.py#L5
  166. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GoogleIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/google/provider.py#L16
  167. abstract-method:
    Method 'get_refresh_token_params' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GoogleIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/google/provider.py#L16
  168. abstract-method:
    Method 'get_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GoogleIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/google/provider.py#L16
  169. abstract-method:
    Method 'build_identity' is abstract in class 'Provider' but is not overridden in child class 'BitbucketIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/bitbucket/provider.py#L11
  170. abstract-method:
    Method 'refresh_identity' is abstract in class 'Provider' but is not overridden in child class 'BitbucketIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/bitbucket/provider.py#L11
  171. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GitHubIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/github/provider.py#L26
  172. abstract-method:
    Method 'get_refresh_token_params' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GitHubIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/github/provider.py#L26
  173. abstract-method:
    Method 'get_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'GitHubIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/github/provider.py#L26
  174. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'SlackIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/slack/provider.py#L8
  175. abstract-method:
    Method 'get_refresh_token_params' is abstract in class 'OAuth2Provider' but is not overridden in child class 'SlackIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/slack/provider.py#L8
  176. abstract-method:
    Method 'get_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'SlackIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/slack/provider.py#L8
  177. abstract-method:
    Method 'get_oauth_refresh_token_url' is abstract in class 'OAuth2Provider' but is not overridden in child class 'VstsExtensionIdentityProvider'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/identity/vsts_extension/provider.py#L4
  178. abstract-method:
    Method 'create_audit_entry' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'ReleaseFilesMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/releases/endpoints/project_release_files.py#L59
  179. abstract-method:
    Method 'paginate' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'ReleaseFilesMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/releases/endpoints/project_release_files.py#L59
  180. abstract-method:
    Method 'respond' is abstract in class 'BaseEndpointMixin' but is not overridden in child class 'ReleaseFilesMixin'
    https://github.com/getsentry/sentry/blob/7a701584e61d8a093132eb37c45fd0359c1652ee/src/sentry/releases/endpoints/project_release_files.py#L59

Effect on black:

The following messages are now emitted:

Details
  1. unsubscriptable-object:
    Value 'TResult' is unsubscriptable
    https://github.com/psf/black/blob/acc73dc4ff97d2c1d5999914a9a182b6e2728b8a/src/black/trans.py#L476
  2. unsubscriptable-object:
    Value 'TResult' is unsubscriptable
    https://github.com/psf/black/blob/acc73dc4ff97d2c1d5999914a9a182b6e2728b8a/src/black/trans.py#L507
  3. unsubscriptable-object:
    Value 'TResult' is unsubscriptable
    https://github.com/psf/black/blob/acc73dc4ff97d2c1d5999914a9a182b6e2728b8a/src/black/trans.py#L548
  4. unsubscriptable-object:
    Value 'TResult' is unsubscriptable
    https://github.com/psf/black/blob/acc73dc4ff97d2c1d5999914a9a182b6e2728b8a/src/black/trans.py#L756
  5. unsubscriptable-object:
    Value 'TResult' is unsubscriptable
    https://github.com/psf/black/blob/acc73dc4ff97d2c1d5999914a9a182b6e2728b8a/src/black/trans.py#L989
  6. unsubscriptable-object:
    Value 'TResult' is unsubscriptable
    https://github.com/psf/black/blob/acc73dc4ff97d2c1d5999914a9a182b6e2728b8a/src/black/trans.py#L1498
  7. unsubscriptable-object:
    Value 'TResult' is unsubscriptable
    https://github.com/psf/black/blob/acc73dc4ff97d2c1d5999914a9a182b6e2728b8a/src/black/trans.py#L2211

Effect on home-assistant:

The following messages are now emitted:

Details
  1. abstract-method:
    Method 'set_fan_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  2. abstract-method:
    Method 'set_humidity' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  3. abstract-method:
    Method 'set_hvac_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  4. abstract-method:
    Method 'set_preset_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  5. abstract-method:
    Method 'set_swing_horizontal_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  6. abstract-method:
    Method 'set_swing_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  7. abstract-method:
    Method 'set_temperature' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  8. abstract-method:
    Method 'toggle' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  9. abstract-method:
    Method 'turn_off' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  10. abstract-method:
    Method 'turn_on' is abstract in class 'ClimateEntity' but is not overridden in child class 'MqttClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/climate.py#L528
  11. abstract-method:
    Method 'set_operation_mode' is abstract in class 'WaterHeaterEntity' but is not overridden in child class 'MqttWaterHeater'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/water_heater.py#L184
  12. abstract-method:
    Method 'set_temperature' is abstract in class 'WaterHeaterEntity' but is not overridden in child class 'MqttWaterHeater'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/water_heater.py#L184
  13. abstract-method:
    Method 'turn_away_mode_off' is abstract in class 'WaterHeaterEntity' but is not overridden in child class 'MqttWaterHeater'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/water_heater.py#L184
  14. abstract-method:
    Method 'turn_away_mode_on' is abstract in class 'WaterHeaterEntity' but is not overridden in child class 'MqttWaterHeater'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/water_heater.py#L184
  15. abstract-method:
    Method 'turn_off' is abstract in class 'WaterHeaterEntity' but is not overridden in child class 'MqttWaterHeater'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/water_heater.py#L184
  16. abstract-method:
    Method 'turn_on' is abstract in class 'WaterHeaterEntity' but is not overridden in child class 'MqttWaterHeater'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/mqtt/water_heater.py#L184
  17. abstract-method:
    Method '_async_update_params' is abstract in class 'AirzoneEntity' but is not overridden in child class 'AirzoneBaseSelect'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/select.py#L125
  18. abstract-method:
    Method 'get_airzone_value' is abstract in class 'AirzoneEntity' but is not overridden in child class 'AirzoneBaseSelect'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/select.py#L125
  19. abstract-method:
    Method 'select_option' is abstract in class 'SelectEntity' but is not overridden in child class 'AirzoneBaseSelect'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/select.py#L125
  20. abstract-method:
    Method 'select_option' is abstract in class 'SelectEntity' but is not overridden in child class 'AirzoneZoneSelect'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/select.py#L148
  21. abstract-method:
    Method '_async_update_params' is abstract in class 'AirzoneEntity' but is not overridden in child class 'AirzoneSystemEntity'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/entity.py#L234
  22. abstract-method:
    Method '_async_update_params' is abstract in class 'AirzoneEntity' but is not overridden in child class 'AirzoneWebServerEntity'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/entity.py#L265
  23. abstract-method:
    Method '_async_update_params' is abstract in class 'AirzoneEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  24. abstract-method:
    Method 'get_airzone_value' is abstract in class 'AirzoneEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  25. abstract-method:
    Method 'set_fan_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  26. abstract-method:
    Method 'set_humidity' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  27. abstract-method:
    Method 'set_hvac_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  28. abstract-method:
    Method 'set_preset_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  29. abstract-method:
    Method 'set_swing_horizontal_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  30. abstract-method:
    Method 'set_swing_mode' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  31. abstract-method:
    Method 'set_temperature' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  32. abstract-method:
    Method 'toggle' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  33. abstract-method:
    Method 'turn_off' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  34. abstract-method:
    Method 'turn_on' is abstract in class 'ClimateEntity' but is not overridden in child class 'AirzoneClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L174
  35. abstract-method:
    Method '_async_update_params' is abstract in class 'AirzoneEntity' but is not overridden in child class 'AirzoneDeviceClimate'
    https://github.com/home-assistant/core/blob/9ad1356e4b3ee8c837c28dfde850fab8b6927aea/homeassistant/components/airzone_cloud/climate.py#L234
  36. abstract-method:
    *Method 'get_airzone_value' is abstract in class...

This comment was truncated because GitHub allows only 65536 characters in a comment.

This comment was generated for commit 9021d25

@Pierre-Sassoulas
Copy link
Copy Markdown
Member

As incredible as it seems, every new primer warning I checked seem to be an actual issue.

@Pierre-Sassoulas Pierre-Sassoulas self-assigned this May 18, 2026
@Pierre-Sassoulas Pierre-Sassoulas added Needs review 🔍 Needs to be reviewed by one or multiple more persons and removed Work in progress Needs take over 🛎️ Orignal implementer went away but the code could be salvaged. labels May 18, 2026
@DanielNoord DanielNoord merged commit 9f08fc7 into pylint-dev:main May 18, 2026
48 checks passed
Pierre-Sassoulas added a commit to Pierre-Sassoulas/pylint that referenced this pull request May 20, 2026
- Bump main reference to d523e3e
- Mark pylint-dev#7950, pylint-dev#6211, pylint-dev#3716 FIXED in triage_state.json + issues_raw.json
  (closed by PRs pylint-dev#7955, pylint-dev#7360, pylint-dev#10989)
- BRANCH_PRIORITIZATION.md: new "Landed since last snapshot" table, swap
  takeover-7611 and takeover-py315-support into P0 (takeover-7360 archivable
  now that pylint-dev#7360 merged), refresh recommended order and next-moves
- FIXED_AUDIT.md: log the 3 new closures and refreshed tally
- ISSUE_TRIAGE.md: note the 1022→1017 open-count refresh

Verdicts now: DESIGN 596 / EXTDEP 197 / REPRO 180 / FIXED 32 / UNCLEAR 9
/ DUP 2 / STALE 1 (1017 open).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

False Negative 🦋 No message is emitted but something is wrong with the code Needs review 🔍 Needs to be reviewed by one or multiple more persons

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Subclasses of abstract class that do not inherit abc.ABC are considered abstract

4 participants